package eu.floranet.arquivo.model.persistence;

import java.util.Properties;

/**
 * Classe de atribuição, escrita e leitura de propriedades. Esta classe
 * implementa métodos (Mutators) para leitura das propriedades, atribuição de
 * propriedades e com o caracteristica de se passar o objecto
 * {@link PersistenceLinkFile} pode gravar as suas propriedades para este
 * objecto.
 * 
 * @author jmark
 * 
 */
public class PersistenceLinkProperties implements IPersistenceLinkProperties {

	/**
	 * Variável de instancia Properties
	 */
	private Properties linkProperties = null;

	/**
	 * Método de default de construção da classe. Este método cria a classe
	 * com as suas propriedades nulas.
	 */
	public PersistenceLinkProperties(){
		
	}
	
	/**
	 * Método de construção da classe. Este método é construido com base das
	 * propriedades. Estas propriedades são atribuidas a este objecto através do
	 * método (Mutator)
	 * {@link PersistenceLinkProperties#setLinkProperties(Properties)}.
	 * 
	 * @param linkProperties
	 *            - Properties
	 */
	public PersistenceLinkProperties(Properties linkProperties){
		setLinkProperties(linkProperties);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @seeeu.floranet.arquivo.model.persistence.IPersistenceLinkProperties#
	 * setLinkProperties(java.util.Properties)
	 */
	public void setLinkProperties(Properties linkProperties){
		this.linkProperties = linkProperties;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @seeeu.floranet.arquivo.model.persistence.IPersistenceLinkProperties#
	 * getLinkProperties()
	 */
	public Properties getLinkProperties() {
		return this.linkProperties;
	}
	
	/*
	 * (non-Javadoc)
	 * 
	 * @seeeu.floranet.arquivo.model.persistence.IPersistenceLinkProperties#
	 * isLinkPropertiesEmpty()
	 */
	@Override
	public boolean isLinkPropertiesEmpty() {
		if ((this.linkProperties != null) && (!this.linkProperties.isEmpty())) {
			return false;
		} else {
			return true;
		}
	}
}
